package com.yanqu.road.entity.activity.suitang.entity.rank;

import com.yanqu.road.entity.rank.yrank.UnionYRank;

import java.util.Comparator;
import java.util.Objects;

/**
 * 战斗排序器
 * value
 * param
 * 战场类型先排，然后是分数，最后是赚速
 */
public class CrossSuiTangYRankSort implements Comparator<UnionYRank> {

    @Override
    public int compare(UnionYRank o1, UnionYRank o2) {
        String[] paramList1 = o1.getParam().split("#");
        String[] paramList2 = o2.getParam().split("#");
        if (paramList1.length < 2 || paramList2.length < 2) {
            return Long.compare(o2.getValue().longValue(), o1.getValue().longValue());
        } else {
            // 战场
            long param1 = Long.parseLong(paramList1[0]);
            long param2 = Long.parseLong(paramList2[0]);
            if (param1 != param2) {
                return Long.compare(param2, param1);
            }
            // 分数
            if (o1.getValue().longValue() != o2.getValue().longValue()) {
                return Long.compare(o2.getValue().longValue(), o1.getValue().longValue());
            }
            // 赚速
            param1 = Long.parseLong(paramList1[1]);
            param2 = Long.parseLong(paramList2[1]);
            if (param1 != param2) {
                return Long.compare(param2, param1);
            }
        }
        return Long.compare(o2.getUpdateTime(), o1.getUpdateTime());
    }
}
